নিম্নের "Student_result" টেবিলটি লক্ষ্য করুনঃ
আইডি নং | রোল নাম্বার | লিখিত নাম্বার | এমসিকিউ নাম্বার | ফলাফল |
---|---|---|---|---|
১ | ১০১ | ৫১ | ৩৬ | A+ |
২ | ১০২ | ৫২ | ৩৫ | A+ |
৩ | ১০৩ | ৫৪ | ৩০ | A+ |
৪ | ১০৪ | ৫০ | ৩১ | A+ |
৫ | ১০৫ | ৪৯ | ৩৩ | A+ |
ধরুন "এমসিকিউ নাম্বার(Mcq_number)" কলামটি ঐচ্ছিক এবং ইহা Null
ভ্যালু ধারণ করতে পারে।
নিম্নের উদাহরণটি লক্ষ করুনঃ
SELECT Roll_number, (Written_number+Mcq_number)
FROM Student_result;
উপরের উদাহরণে যদি "এমসিকিউ নাম্বার(Mcq_number)" কলামের ভ্যালু Null
হয় তাহলে ফলাফলও Null
হবে।
Null
এর ভ্যালু নির্ধারণের জন্য মাইক্রোসফট ISNULL
()
ফাংশন ব্যবহার করে।
NVL
()
, IFNULL
()
এবং COALESCE
()
ফাংশন গুলোও একই কাজ করে।
Null
ফাংশন ব্যবহারের উদ্দেশ্য হলো আমরা Null
ভ্যালুর পরিবর্তে 0(শূন্য) পেতে চাই।
ISNULL
()
ফাংশন ব্যবহার করলে "এমসিকিউ নাম্বার(Mcq_number)" কলামের কোন মান Null
হলেও হিসাব-নিকাশে কোন সমস্যা হবে না, কারন প্রতিটি Null
ভ্যালুর জন্য ISNULL
()
ফাংশনটি একটি 0(শূন্য) রিটার্ন করবেঃ
MS Access এর জন্য
SELECT Roll_number, (Written_number+IIF(ISNULL(Mcq_number),0,Mcq_number))
FROM Student_result;
SQL Server এর জন্য
SELECT Roll_number, (Written_number+ISNULL(Mcq_number,0))
FROM Student_result;
ওরাকলে কোনো ISNULL
()
ফাংশন নেই। ওরাকলে আমরা ISNULL
()
এর পরিবর্তে NVL
()
ফাংশনটি ব্যবহার করবোঃ
Oracle এর জন্য
SELECT Roll_number, (Written_number+NVL(Mcq_number,0))
FROM Student_result;
MySQL এ ISNULL
()
ফাংশন আছে। তবুও ইহা মাইক্রোসফট ISNULL
()
ফাংশনের চেয়ে একটু ভিন্ন ভাবে কাজ করে।
MySQL এ আমরা IFNULL
()
ফাংশনটি ব্যবহার করবোঃ
MySQL এর জন্য
SELECT Roll_number, (Written_number+IFNULL(Mcq_number,0))
FROM Student_result;
অথবা আমরা COALESCE
()
ফাংশনটি ব্যবহার করতে পারিঃ
SELECT Roll_number, (Written_number+COALESCE(Mcq_number,0))
FROM Student_result;
আরও দেখুন...